function firstUniqChar(s) {
    if (!s) return ' ';

    let m = new Map();

    for (let i = 0; i < s.length; i++) {
        if (!m.has(s[i])) {
            m.set(s[i], 1);
        } else {
            m.set(s[i], m.get(s[i]) + 1);
        };
    };

    for (let [k,v] of m.entries()) {
        if (v === 1) {
            return k;
        };
    };

    return ' ';
};



// test
const s = 'aabfccddbbddeghh';
console.log(firstUniqChar(s));   // f



